package oop

import "fmt"

type Node struct {
	Value       int
	Left, Right *Node // 指针指向左右节点
}

// 前面括号是接收者,类似this, 也是传值
func (node Node) Print() {
	fmt.Print(node.Value, " ")
}

/**
	结构体定义方法
   使用指针，会修改值
*/
func (node *Node) SetValue(value int) {
	if node == nil {
		fmt.Println("Setting Value to nil " +
			"node. Ignored.")
		return
	}
	node.Value = value
}

/**
 * 工厂函数返回指针创建Node
 * 返回局部变量地址，局部变量也可以返回给外部用(c不可以)
 *
 */
func CreateNode(value int) *Node {
	return &Node{Value: value}
}

func Test() string { return "my.test" }
